package org.jeecg.modules.demo.yxsofeiyongfentan.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: cw_sale_invoice
 * @Author: jeecg-boot
 * @Date:   2022-12-02
 * @Version: V1.0
 */
@Data
@TableName("cw_sale_invoice")
@ApiModel(value="cw_sale_invoice对象", description="cw_sale_invoice")
public class SoInvoiceVo implements Serializable {
    private static final long serialVersionUID = 1L;

    /**id*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private String id;
    /**单据日期*/
    @Excel(name = "单据日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "单据日期")
    private Date scCdate;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**发票号*/
    @Excel(name = "发票号", width = 15)
    @ApiModelProperty(value = "发票号")
    private String invoiceNo;
    /**发票流水号*/
    @Excel(name = "发票流水号", width = 15)
    @ApiModelProperty(value = "发票流水号")
    private String invoiceNum;
    /**结算方式*/
    @Excel(name = "结算方式", width = 15)
    @ApiModelProperty(value = "结算方式")
    @Dict(dicCode = "so_jiesuan")
    private String jsType;
    /**账号名称*/
    @Excel(name = "账号名称", width = 15)
    @ApiModelProperty(value = "账号名称")
    private String zhName;
    /**开票金额*/
    @Excel(name = "开票金额", width = 15)
    @ApiModelProperty(value = "开票金额")
    private BigDecimal skJine;
    /**订单状态（0：未审，1：已审，2：已关闭）*/
    @Excel(name = "订单状态（0：未审，1：已审，2：已关闭）", width = 15)
    @ApiModelProperty(value = "订单状态（0：未审，1：已审，2：已关闭）")
    private Integer soStatus;
    /**是否已生成收款单（0：否，1：是）*/
    @Excel(name = "是否已生成收款单（0：否，1：是）", width = 15)
    @ApiModelProperty(value = "是否已生成收款单（0：否，1：是）")
    private Integer isSkd;
    /**删除状态（0：未删，1：已删）*/
    @Excel(name = "删除状态（0：未删，1：已删）", width = 15)
    @ApiModelProperty(value = "删除状态（0：未删，1：已删）")
    private Integer isDelete;
    /**销售结算单号*/
    @Excel(name = "销售结算单号", width = 15)
    @ApiModelProperty(value = "销售结算单号")
    private String sosNo;
    /**无税单价*/
    @Excel(name = "无税单价", width = 15)
    @ApiModelProperty(value = "无税单价")
    private BigDecimal wsdj;
    /**无税金额*/
    @Excel(name = "无税金额", width = 15)
    @ApiModelProperty(value = "无税金额")
    private BigDecimal wsje;
    /**含税单价*/
    @Excel(name = "含税单价", width = 15)
    @ApiModelProperty(value = "含税单价")
    private BigDecimal hsdj;
    /**含税金额*/
    @Excel(name = "含税金额", width = 15)
    @ApiModelProperty(value = "含税金额")
    private BigDecimal hsje;
    /**税率*/
    @Excel(name = "税率", width = 15)
    @ApiModelProperty(value = "税率")
    @Dict(dicCode = "tax_rate")
    private BigDecimal sl;
    /**审核人*/
    @Excel(name = "审核人", width = 15)
    @ApiModelProperty(value = "审核人")
    @Dict(dictTable = "sys_user",dicCode ="id",dicText="realname")
    private String shName;
    /**审核时间*/
    @Excel(name = "审核时间", width = 15)
    @ApiModelProperty(value = "审核时间")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Date shTime;
    /**备注*/
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
    /**合同基价*/
    @Excel(name = "合同基价", width = 15)
    @ApiModelProperty(value = "合同基价")
    private BigDecimal htjjia;
    /**收益*/
    @Excel(name = "收益", width = 15)
    @ApiModelProperty(value = "收益")
    private BigDecimal shouyi;
    /**其他调整价*/
    @Excel(name = "其他调整价", width = 15)
    @ApiModelProperty(value = "其他调整价")
    private BigDecimal adjust;
    /**质检指标*/
    @Excel(name = "质检指标", width = 15)
    @ApiModelProperty(value = "质检指标")
    private String realzb;
    /**项目*/
    @Excel(name = "项目", width = 15)
    @ApiModelProperty(value = "项目")
    @Dict(dictTable = "pj_project",dicCode ="id",dicText="pj_name")
    private String project;
    /**部门*/
    @Excel(name = "部门", width = 15)
    @ApiModelProperty(value = "部门")
    @Dict(dictTable = "sys_depart",dicCode = "id",dicText = "depart_name")
    private String dept;
    /**客户*/
    @Excel(name = "客户", width = 15)
    @ApiModelProperty(value = "客户")
    private String soCustom;
    /**收入单号*/
    @Excel(name = "收入单号", width = 15)
    @ApiModelProperty(value = "收入单号")
    private String srNo;
    /**剩余金额*/
    @Excel(name = "剩余金额", width = 15)
    @ApiModelProperty(value = "剩余金额")
    private BigDecimal supamount;
    /**结算总量*/
    @Excel(name = "结算总量", width = 15)
    @ApiModelProperty(value = "结算总量")
    private BigDecimal sosTotal;
    /**计量单位*/
    @Excel(name = "计量单位", width = 15)
    @ApiModelProperty(value = "计量单位")
    private String jldw;
    /**存货名称*/
    @Excel(name = "存货名称", width = 15)
    @ApiModelProperty(value = "存货名称")
    private String prdName;
    /**业务类型*/
    @Excel(name = "业务类型", width = 15)
    @ApiModelProperty(value = "业务类型")
    @Dict(dicCode = "skd_ywType")
    private String ywType;
    /**发票类型*/
    @Excel(name = "发票类型", width = 15)
    @ApiModelProperty(value = "发票类型")
    @Dict(dicCode = "fplx")
    private String fplx;
    /**业务员*/
    @Excel(name = "业务员", width = 15)
    @ApiModelProperty(value = "业务员")
    @Dict(dictTable = "sys_user",dicCode ="id",dicText="realname")
    private String poStaff;
    /**税额*/
    @Excel(name = "税额", width = 15)
    @ApiModelProperty(value = "税额")
    private BigDecimal psTax;
    /**销售订单号*/
    @Excel(name = "销售订单号", width = 15)
    @ApiModelProperty(value = "销售订单号")
    private String soNo;
    /**开票数量*/
    @Excel(name = "开票数量", width = 15)
    @ApiModelProperty(value = "开票数量")
    private BigDecimal fpsl;
    /**剩余可开票金额*/
    @Excel(name = "剩余可开票金额", width = 15)
    @ApiModelProperty(value = "剩余可开票金额")
    private BigDecimal kkpJine;
    /**分摊金额*/
    @Excel(name = "分摊金额", width = 15)
    @ApiModelProperty(value = "分摊金额")
    private BigDecimal ftJine;
    /**使用预收金额*/
    @Excel(name = "使用预收金额", width = 15)
    @ApiModelProperty(value = "使用预收金额")
    private BigDecimal syysJine;
    /**附件*/
    @Excel(name = "附件", width = 15)
    @ApiModelProperty(value = "附件")
    private String fj;
    //临时可开票金额
    private BigDecimal skJines;
    /**预计收款时间*/
    @Excel(name = "预计收款时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "预计收款时间")
    private Date yjskTime;
    /**租户id*/
    @Excel(name = "租户id", width = 15)
    @ApiModelProperty(value = "租户id")
    private Integer tenantId;
    /**发票颜色(1蓝普通发票，2黄预开发票，3红对冲发票)*/
    @Excel(name = "发票颜色", width = 15)
    @ApiModelProperty(value = "发票颜色")
    private Integer fpYs;
    /**内部编号*/
    @Excel(name = "内部编号", width = 15)
    @ApiModelProperty(value = "内部编号")
    private String tradecode;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**机构编码*/
    @ApiModelProperty(value = "机构编码")
    private String sysOrgCode;
}
